// 1. 配置基础路径和超时限制
// 2. 添加进度条信息  nprogress
// 3. 返回的响应不再需要从data属性当中拿数据，而是响应就是我们要的数据
// 4. 统一处理请求错误, 具体请求也可以选择处理或不处理
import axios from 'axios';
import NProgress from 'nprogress';
import "nprogress/nprogress.css"
import store from "@/store";

// 创建一个axios实例用来发送网络请求,所有网络请求都使用这个实例发送
const request = axios.create({
    baseURL: "/api", // 基础路径
    timeout: 20000 // 超时时间
})

// 添加请求拦截器 - 第一个回调,请求发出去会走的回调  第二个回调 发送失败的回调
request.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    config.headers.userTempId = store.state.user.userTempId;
    config.headers.token = store.state.user.token;
    console.log(store.state.user.userTempId)
    NProgress.start(); // 蓝色进度条开始
    return config;
}, function (error) {
    NProgress.done();
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
request.interceptors.response.use(function (response) {
    
    NProgress.done(); // 蓝色进度条结束
    return response.data;
}, function (error) {
    NProgress.done();
    // alert('响应失败,统一处理请求错误提示'); // 这里进行统一的错误处理
    return Promise.reject(error);
});

export default request